-- *****************************************************************
-- Descriptions of managed objects for CISCO IEEE 802.3ah OAM MIB.
--
-- December 2006, Bibek Das
--
-- Copyright (c) 2006-2007 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--
-- CISCO-DOT3-OAM-MIB
--
-- This mib is based on draft-ietf-hubmib-efm-mib-04.txt.
-- In the future, this mib may be removed entirely, or re-implemented
-- on short notice in favor of more standard or generic MIBs.
-- Application developers should not depend on long-term access to 
-- this MIB.
-- The intent is to eventually update to DOT3-OAM-MIB,
-- once the final approved version of 
-- draft-ietf-hubmib-efm-mib-04.txt is available,
-- and remove this CISCO-DOT3-OAM-MIB in its entirety. 
     
CISCO-DOT3-OAM-MIB DEFINITIONS ::= BEGIN 
   
IMPORTS 
    MODULE-IDENTITY,  OBJECT-TYPE, Counter32, Unsigned32, 
      Integer32, NOTIFICATION-TYPE
      FROM SNMPv2-SMI 
    TEXTUAL-CONVENTION, MacAddress, TimeStamp, TruthValue
      FROM SNMPv2-TC 
    CounterBasedGauge64
      FROM HCNUM-TC
    ifIndex  
      FROM IF-MIB
    ciscoExperiment
                FROM CISCO-SMI 
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
      FROM SNMPv2-CONF; 
    
   
    cdot3OamMIB MODULE-IDENTITY 
      LAST-UPDATED "200605310000Z"  -- 31 May 2006 12:00:00 EST
      ORGANIZATION "Cisco Systems, Inc"
      CONTACT-INFO 
          "        Cisco Systems
                   Customer Service

           Postal: 170 W Tasman Drive
                   San Jose, CA 95134
                   USA

           Tel:    +1 800 553-NETS
           Email:  cs-ethermibs@cisco.com"
DESCRIPTION
    "The MIB module for managing the new Ethernet OAM features
    introduced by the Ethernet in the First Mile task force (IEEE
    802.3ah).  The functionality presented here is based on IEEE
    802.3ah [802.3ah], released in October, 2004.  [802.3ah] was
    prepared as an addendum to the standing version of IEEE 802.3
    [802.3-2002] at the time.  Since then, [802.3ah] has been
    merged into the base IEEE 802.3 specification in [802.3-2005].
   
    In particular, this MIB focuses on the new OAM functions
    introduced in Clause 57 of [802.3ah].  The OAM functionality
    of Clause 57 is controlled by new management attributes
    introduced in Clause 30 of [802.3ah].  The OAM functions are
    not specific to any particular Ethernet physical layer, and
    can be generically applied to any Ethernet interface of
    [802.3-2002].  
   
    An Ethernet OAM protocol data unit is a valid Ethernet frame
    with a destination MAC address equal to the reserved MAC
    address for Slow Protocols (See 43B of [802.3ah]), a
    lengthOrType field equal to the reserved type for Slow
    Protocols, and a Slow Protocols subtype equal to that of the
    subtype reserved for Ethernet OAM.  OAMPDU is used throughout
    this document as an abbreviation for Ethernet OAM protocol
    data unit.  
   
    The following reference is used throughout this MIB module:  
   
      [802.3ah] refers to:
        IEEE Std 802.3ah-2004: 'Draft amendment to -
        Information technology - Telecommunications and
        information exchange between systems - Local and
        metropolitan are networks - Specific requirements - Part
        3: Carrier sense multiple access with collision detection
        (CSMA/CD) access method and physical layer specifications
        - Media Access Control Parameters, Physical Layers and
        Management Parameters for subscriber access networks',
        October 2004.
   
      [802.3-2002] refers to:
        IEEE Std 802.3-2002: 
        'Information technology - Telecommunications and
        information exchange between systems - Local and
        metropolitan are networks - Specific requirements - Part
        3: Carrier sense multiple access with collision detection
        (CSMA/CD) access method and physical layer specifications
        - Media Access Control Parameters, Physical Layers and
        Management Parameters for subscriber access networks',
        March 2002.
   
      [802.3-2005] refers to:
        IEEE Std 802.3-2002: 
        'Information technology - Telecommunications and
        information exchange between systems - Local and
        metropolitan are networks - Specific requirements - Part
        3: Carrier sense multiple access with collision detection
        (CSMA/CD) access method and physical layer specifications
        - Media Access Control Parameters, Physical Layers and
        Management Parameters for subscriber access networks',
        December 2005.
   
      [802-2001] refers to:
        'IEEE Standard for LAN/MAN (Local Area
        Network/Metropolitan Area Network): Overview and
        Architecture', IEEE 802, June 2001." 
   
   
        REVISION    "200605310000Z"  -- 31 May 2006 12:00:00 EST
        DESCRIPTION "Initial version."
        ::= { ciscoExperiment 136 }
   
-- Sections of the Ethernet OAM MIB

cdot3OamNotifications OBJECT IDENTIFIER ::= { cdot3OamMIB 0 }
cdot3OamObjects       OBJECT IDENTIFIER ::= { cdot3OamMIB 1 }
cdot3OamConformance   OBJECT IDENTIFIER ::= { cdot3OamMIB 2 }
   
--
-- Textual conventions for OAM MIB
--
Cdot3Oui ::= TEXTUAL-CONVENTION
  STATUS       current
  DESCRIPTION 
    "24-bit Organizationally Unique Identifier.  Information on
    OUIs can be found in IEEE 802-2001 [802-2001] Clause 9."
  SYNTAX       OCTET STRING(SIZE(3))
   
   
-- ***************************************************************
--
-- Ethernet OAM Control group
--


cdot3OamTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF Cdot3OamEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "This table contains the primary controls and status for the
    OAM capabilities of an Ethernet like interface.  There will be
    one row in this table for each Ethernet like interface in the
    system that supports the OAM functions defined in [802.3ah].
    "   
  ::= { cdot3OamObjects 1 }

cdot3OamEntry OBJECT-TYPE
  SYNTAX     Cdot3OamEntry
  MAX-ACCESS not-accessible
  STATUS     current
  DESCRIPTION 
    "An entry in the table, containing information on the Ethernet
    OAM function for a single Ethernet like interface. Entries in
    the table are created automatically for each interface
    supporting Ethernet OAM. The status of the row entry can be
    determined from cdot3OamOperStatus.  

    A cdot3OamEntry is indexed in the cdot3OamTable by the ifIndex
    object of the Interfaces MIB.  
    "
  INDEX       { ifIndex }
  ::= { cdot3OamTable 1 }

Cdot3OamEntry ::=
  SEQUENCE {
    cdot3OamAdminState                  INTEGER,
    cdot3OamOperStatus                  INTEGER,
    cdot3OamMode                        INTEGER,
    cdot3OamMaxOamPduSize               Unsigned32,
    cdot3OamConfigRevision              Unsigned32, 
    cdot3OamFunctionsSupported          BITS
  }

        
cdot3OamAdminState OBJECT-TYPE
  SYNTAX      INTEGER {
                disabled(1),
                enabled(2)
              }
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "This object is used to provision the default administrative
    OAM mode for this interface.  This object represents the
    desired state of OAM for this interface.  

    The cdot3OamAdminState always starts in the disabled(1) state
    until an explicit management action or configuration
    information retained by the system causes a transition to the
    enabled(2) state.   When enabled(2), Ethernet OAM will attempt
    to operate over this interface.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.2"
  ::= { cdot3OamEntry 1 }

cdot3OamOperStatus OBJECT-TYPE
  SYNTAX      INTEGER {
                disabled(1),
                linkFault(2),
                passiveWait(3),
                activeSendLocal(4),
                sendLocalAndRemote(5),
                sendLocalAndRemoteOk(6),
                oamPeeringLocallyRejected(7),
                oamPeeringRemotelyRejected(8),
                operational(9),
                nonOperHalfDuplex(10)
              }
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "At initialization and failure conditions, two OAM entities on
    the same full-duplex Ethernet link begin a discovery phase to
    determine what OAM capabilities may be used on that link.  The
    progress of this initialization is controlled by the OAM
    sublayer.  
               
    This value is always disabled(1) if OAM is disabled on this
    interface via the cdot3OamAdminState.  

    If the link has detected a fault and is transmitting OAMPDUs
    with a link fault indication, the value is linkFault(2). Also,
    if the interface is not operational (ifOperStatus is not 
    up(1)), linkFault(2) is returned.  Note that the object 
    ifOperStatus may not be up(1) as a result of link failure or
    administrative action (ifAdminState being down(2) or
    testing(3)).  
                     
    The passiveWait(3) state is returned only by OAM entities in
    passive mode (cdot3OamMode) and reflects the state in which the
    OAM entity is waiting to see if the peer device is OAM
    capable.  The activeSendLocal(4) value is used by active mode
    devices (cdot3OamMode) and reflects the OAM entity actively
    trying to discover whether the peer has OAM capability but has
    not yet made that determination.  
                     
    The state sendLocalAndRemote(5) reflects that the local OAM
    entity has discovered the peer but has not yet accepted or
    rejected the configuration of the peer.  The local device can,
    for whatever reason, decide that the peer device is
    unacceptable and decline OAM peering.  If the local OAM entity
    rejects the peer OAM entity, the state becomes
    oamPeeringLocallyRejected(7).  If the OAM peering is allowed
    by the local device, the state moves to
    sendLocalAndRemoteOk(6).  Note that both the
    sendLocalAndRemote(5) and oamPeeringLocallyRejected(7) states
    fall within the state SEND_LOCAL_REMOTE of the Discovery state
    diagram [802.3ah, Figure 57-5], with the difference being
    whether the local OAM client has actively rejected the peering
    or has just not indicated any decision yet.  Whether a peering
    decision has been made is indicated via the local flags field
    in the OAMPDU (reflected in the aOAMLocalFlagsField of
    30.3.6.1.10).  

    If the remote OAM entity rejects the peering, the state
    becomes oamPeeringRemotelyRejected(8).  Note that both the
    sendLocalAndRemoteOk(6) and oamPeeringRemotelyRejected(8)
    states fall within the state SEND_LOCAL_REMOTE_OK of the
    Discovery state diagram [802.3ah, Figure 57-5], with the
    difference being whether the remote OAM client has rejected
    the peering or has just not yet decided.  This is indicated
    via the remote flags field in the OAM PDU (reflected in the
    aOAMRemoteFlagsField of 30.3.6.1.11).  
                     
    When the local OAM entity learns that both it and the remote
    OAM entity have accepted the peering, the state moves to
    operational(9) corresponding to the SEND_ANY state of the
    Discovery state diagram [802.3ah, Figure 57-5].  

    Since Ethernet OAM functions are not designed to work
    completely over half-duplex interfaces, the value
    nonOperHalfDuplex(10) is returned whenever Ethernet OAM is
    enabled (cdot3OamAdminState is enabled(1)) but the interface is
    in half-duplex operation.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.4, 30.3.6.1.10, 30.3.6.1.11"
  ::= { cdot3OamEntry 2 }

cdot3OamMode OBJECT-TYPE
  SYNTAX      INTEGER {
                active(1),
                passive(2)
              }
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "This object configures the mode of OAM operation for this
    Ethernet like interface.  OAM on Ethernet interfaces may be in
    'active' mode or 'passive' mode.  These two modes differ in
    that active mode provides additional capabilities to initiate
    monitoring activities with the remote OAM peer entity, while
    passive mode generally waits for the peer to initiate OAM
    actions with it.  As an example, an active OAM entity can put
    the remote OAM entity in a loopback state, where a passive OAM
    entity cannot.  

    The default value of cdot3OamMode is dependent on the type of
    system on which this Ethernet like interface resides.  The
    default value should be 'active(1)' unless it is known that
    this system should take on a subservient role to the other
    device connected over this interface.  

    Changing this value results in incrementing the configuration
    revision field of locally generated OAMPDUs (30.3.6.1.12) and
    potentially re-doing the OAM discovery process if the
    cdot3OamOperStatus was already operational(9).  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.3"
  ::= { cdot3OamEntry 3 }

cdot3OamMaxOamPduSize OBJECT-TYPE
  SYNTAX      Unsigned32 (64..1518)
  UNITS       "octets"
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "The largest OAMPDU that the OAM entity supports.  OAM
    entities exchange maximum OAMPDU sizes and negotiate to use
    the smaller of the two maximum OAMPDU sizes between the peers.
    This value is determined by the local implementation.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.8"
  ::= { cdot3OamEntry 4 }
        
cdot3OamConfigRevision OBJECT-TYPE
  SYNTAX      Unsigned32(0..65535)
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "The configuration revision of the OAM entity as reflected in
    the latest OAMPDU sent by the OAM entity.  The config revision
    is used by OAM entities to indicate configuration changes have
    occurred which might require the peer OAM entity to
    re-evaluate whether OAM peering is allowed. 
    "  
  REFERENCE   "[802.3ah], 30.3.6.1.12"
  ::= { cdot3OamEntry 5 }

cdot3OamFunctionsSupported OBJECT-TYPE
  SYNTAX      BITS {
                unidirectionalSupport (0),
                loopbackSupport(1),
                eventSupport(2),
                variableSupport(3)
              }
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "The OAM functions supported on this Ethernet like interface.
    OAM consists of separate functional sets beyond the basic
    discovery process which is always required.  These functional
    groups can be supported independently by any implementation.
    These values are communicated to the peer via the local
    configuration field of Information OAMPDUs.  

    Setting 'unidirectionalSupport(0)' indicates that the OAM
    entity supports the transmission of OAMPDUs on links that are
    operating in unidirectional mode (traffic flowing in one
    direction only).  Setting 'loopbackSupport(1)' indicates the
    OAM entity can initiate and respond to loopback commands.
    Setting 'eventSupport(2)' indicates the OAM entity can send
    and receive Event Notification OAMPDUs. Setting
    'variableSupport(3)' indicates the OAM entity can send and
    receive Variable Request and Response OAMPDUs.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.6"
  ::= { cdot3OamEntry 6 }


-- ***************************************************************
--
-- Ethernet OAM Peer group
--


cdot3OamPeerTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF Cdot3OamPeerEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "This table contains information about the OAM peer for a
    particular Ethernet like interface. OAM entities communicate
    with a single OAM peer entity on Ethernet links on which OAM
    is enabled and operating properly.  There is one entry in this
    table for each entry in the cdot3OamTable for which information
    on the peer OAM entity is available.  
    " 
  ::= { cdot3OamObjects 2 }

cdot3OamPeerEntry OBJECT-TYPE
  SYNTAX      Cdot3OamPeerEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "An entry in the table, containing information on the peer OAM
    entity for a single Ethernet like interface.  

    Note that there is at most one OAM peer for each Ethernet like
    interface.  Entries are automatically created when information
    about the OAM peer entity becomes available, and automatically
    deleted when the OAM peer entity is no longer in
    communication.  Peer information is not available when
    cdot3OamOperStatus is disabled(1), linkFault(2),
    passiveWait(3), activeSendLocal(4). or nonOperHalfDuplex(10)). 
    "
  INDEX       { ifIndex }
  ::= { cdot3OamPeerTable 1 }


Cdot3OamPeerEntry ::=
  SEQUENCE {
    cdot3OamPeerMacAddress               MacAddress, 
    cdot3OamPeerVendorOui                Cdot3Oui, 
    cdot3OamPeerVendorInfo               Unsigned32, 
    cdot3OamPeerMode                     INTEGER,
    cdot3OamPeerMaxOamPduSize            Unsigned32,
    cdot3OamPeerConfigRevision           Unsigned32,
    cdot3OamPeerFunctionsSupported       BITS
  }


cdot3OamPeerMacAddress OBJECT-TYPE
  SYNTAX      MacAddress
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "The MAC address of the peer OAM entity.  The MAC address is
    derived from the most recently received OAMPDU.
    "
  REFERENCE   "[802.3ah], 30.3.6.1.5."  
  ::= { cdot3OamPeerEntry 1 }
   

cdot3OamPeerVendorOui OBJECT-TYPE
  SYNTAX      Cdot3Oui
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "The OUI of the OAM peer as reflected in the latest
    Information OAMPDU received with a Local Information TLV.  The
    OUI can be used to identify the vendor of the remote OAM
    entity.  This value is initialized to zero before any Local
    Information TLV is received.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.16."
  ::= { cdot3OamPeerEntry 2 }
   

cdot3OamPeerVendorInfo OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "The Vendor Info of the OAM peer as reflected in the latest
    Information OAMPDU received with a Local Information TLV.  The
    vendor information field is within the Local Information TLV,
    and can be used to determine additional information about the
    peer entity.  The format of the vendor information is
    unspecified within the 32-bit field.  This value is
    initialized to zero before any Local Information TLV is
    received.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.17."  
  ::= { cdot3OamPeerEntry 3 }
    

cdot3OamPeerMode OBJECT-TYPE
  SYNTAX      INTEGER {
                active(1),
                passive(2),
                unknown(3)
              }
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "The mode of the OAM peer as reflected in the latest
    Information OAMPDU received with a Local Information TLV.  The
    mode of the peer can be determined from the Configuration
    field in the Local Information TLV of the last Information
    OAMPDU received from the peer.  The value is unknown(3)
    whenever no Local Information TLV has been received.  The
    values of active(1) and passive(2) are returned when a Local
    Information TLV has been received indicating the peer is in
    active or passive mode, respectively. 
    "
  REFERENCE   "[802.3ah], 30.3.6.1.7."  
  ::= { cdot3OamPeerEntry 4 }
  
cdot3OamPeerMaxOamPduSize OBJECT-TYPE
  SYNTAX      Unsigned32 (0..1518)
  UNITS       "octets"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "The maximum size of OAMPDU supported by the peer as reflected
    in the latest Information OAMPDU received with a Local
    Information TLV.   Ethernet OAM on this interface must not use
    OAMPDUs that exceed this size.  The maximum OAMPDU size can be
    determined from the PDU Configuration field of the Local
    Information TLV of the last Information OAMPDU received from
    the peer.  A value of zero is returned if no Local Information
    TLV has been received.  Otherwise, the value of the OAM peer's
    maximum OAMPDU size is returned in this value.  
    Note that the values 1..63 are invalid sizes for Ethernet
    frames and should never appear. 
    "
  REFERENCE   "[802.3ah], 30.3.6.1.9."  
  ::= { cdot3OamPeerEntry 5 }


cdot3OamPeerConfigRevision OBJECT-TYPE
  SYNTAX      Unsigned32(0..65535)
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "The configuration revision of the OAM peer as reflected in
    the latest OAMPDU.  This attribute is changed by the peer
    whenever it has a local configuration change for Ethernet OAM
    this interface.  The configuration revision can be determined
    from the Revision field of the Local Information TLV of the
    most recently received Information OAMPDU with a Local
    Information TLV. A value of zero is returned if no Local
    Information TLV has been received.  
  "
  REFERENCE   "[802.3ah], 30.3.6.1.13."  
  ::= { cdot3OamPeerEntry 6 }
  

cdot3OamPeerFunctionsSupported OBJECT-TYPE
  SYNTAX      BITS {
                unidirectionalSupport (0),
                loopbackSupport(1),
                eventSupport(2),
                variableSupport(3)
              }
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "The OAM functions supported on this Ethernet like interface.
    OAM consists of separate functionality sets above the basic
    discovery process.  This value indicates the capabilities of
    the peer OAM entity with respect to these functions.  This
    value is initialized so all bits are clear. 

    If unidirectionalSupport(0) is set, then the peer OAM entity
    supports sending OAM frames on Ethernet interfaces when the
    receive path is known to be inoperable.   If
    loopbackSupport(1) is set, then the peer OAM entity can send
    and receive OAM loopback commands.  If eventSupport(2) is set,
    then the peer OAM entity can send and receive event OAMPDUs to
    signal various error conditions. If variableSupport(3) is set,
    then the peer OAM entity can send and receive variable
    requests to monitor attribute value as described in Clause 57
    of [802.3ah].   

    The capabilities of the OAM peer can be determined from the
    configuration field of the Local Information TLV of the most
    recently received Information OAMPDU with a Local Information
    TLV.  All zeros are returned if no Local Information TLV has
    yet been received. 
    "
  REFERENCE   "[802.3ah], REFERENCE 30.3.6.1.7."
  ::= { cdot3OamPeerEntry 7 }


-- ***************************************************************
-- 
-- Ethernet OAM Loopback group
--  


cdot3OamLoopbackTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF Cdot3OamLoopbackEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "This table contains controls for the loopback state of the
    local link as well as indicating the status of the loopback
    function.  There is one entry in this table for each entry in
    cdot3OamTable that supports loopback functionality (where
    cdot3OamFunctionsSupported includes the loopbackSupport bit
    set).

    Loopback can be used to place the remote OAM entity in a state
    where every received frame (except OAMPDUs) is echoed back
    over the same interface on which they were received.   In this
    state, at the remote entity, 'normal' traffic is disabled as
    only the looped back frames are transmitted on the interface.
    Loopback is thus an intrusive operation that prohibits normal
    data flow and should be used accordingly.  " 
  ::= { cdot3OamObjects 3 }


cdot3OamLoopbackEntry OBJECT-TYPE
  SYNTAX      Cdot3OamLoopbackEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "An entry in the table, containing information on the loopback
    status for a single Ethernet like interface.  Entries in the
    table are automatically created whenever the local OAM entity
    supports loopback capabilities.  The loopback status on the
    interface can be determined from the cdot3OamLoopbackStatus
    object.  
    "
  INDEX       { ifIndex }
  ::= { cdot3OamLoopbackTable 1 }

Cdot3OamLoopbackEntry ::=
  SEQUENCE {
    cdot3OamLoopbackStatus             INTEGER,
    cdot3OamLoopbackIgnoreRx           INTEGER
  }

cdot3OamLoopbackStatus OBJECT-TYPE
  SYNTAX      INTEGER { 
                -- all values, except where noted, can be read
                -- but cannot be written
                noLoopback (1), 

                -- initiatingLoopback can be read or written
                initiatingLoopback (2),
                remoteLoopback (3),

                -- terminatingLoopback can be read or written
                terminatingLoopback (4),
                localLoopback (5),
                unknown (6)
              } 
  MAX-ACCESS  read-write
  STATUS      current 
  DESCRIPTION 
    "The loopback status of the OAM entity.  This status is
    determined by a combination of the local parser and
    multiplexer states, the remote parser and multiplexer states,
    as well as by the actions of the local OAM client.  When
    operating in normal mode with no loopback in progress, the
    status reads noLoopback(1).  

    The values initiatingLooopback(2) and terminatingLoopback(4)
    can be read or written.  The other values can only be read -
    they can never be written.  Writing initiatingLoopback causes
    the local OAM entity to start the loopback process with its
    peer.  This value can only be written when the status is
    noLoopback(1).  Writing the value initiatingLoopback(2) in any
    other state has no effect.  When in remoteLoopback(3), writing
    terminatingLoopback(4) causes the local OAM entity to initiate
    the termination of the loopback state.  Writing
    terminatingLoopack(4) in any other state has no effect.                    
    If the OAM client initiates a looopback and has sent an
    Loopback OAMPDU and is waiting for a response, where the local
    parser and multiplexer states are DISCARD (see [802.3ah,
    57.2.11.1]), the status is 'initiatingLoopback'.  In this
    case, the local OAM entity has yet to receive any
    acknowledgement that the remote OAM entity has received its
    loopback command request.  
                    
    If the local OAM client knows that the remote OAM entity is in
    loopback mode (via the remote state information as described
    in [802.3ah, 57.2.11.1, 30.3.6.1.15]), the status is
    remoteLoopback(3).  If the local OAM client is in the process
    of terminating the remote loopback [802.3ah, 57.2.11.3,
    30.3.6.1.14], with its local multiplexer and parser states in
    DISCARD, the status is terminatingLoopback(4).  If the remote
    OAM client has put the local OAM entity in loopback mode as
    indicated by its local parser state, the status is
    localLoopback(5).  

    The unknown(6) status indicates the parser and multiplexer
    combination is unexpected.  This status may be returned if the
    OAM loopback is in a transition state but should not persist. 

    The values of this attribute correspond to the following
    values of the local and remote parser and multiplexer states. 

      value            LclPrsr   LclMux    RmtPrsr   RmtMux
      noLoopback         FWD       FWD       FWD       FWD  
      initLoopback     DISCARD   DISCARD     FWD       FWD 
      rmtLoopback      DISCARD     FWD      LPBK    DISCARD
      tmtngLoopback    DISCARD   DISCARD    LPBK    DISCARD
      lclLoopback        LPBK    DISCARD   DISCARD     FWD
      unknown            ***   any other combination   ***
    " 
  REFERENCE   "[802.3ah], REFERENCE 57.2.11, 30.3.61.14, 
    30.3.6.1.15"
  ::= { cdot3OamLoopbackEntry 1 }

cdot3OamLoopbackIgnoreRx OBJECT-TYPE
  SYNTAX      INTEGER { ignore(1), process(2) }
  MAX-ACCESS  read-write
  STATUS      current 
  DESCRIPTION 
    "Since OAM loopback is a disruptive operation (user traffic
    does not pass), this attribute provides a mechanism to provide
    controls over whether received OAM loopback commands are
    processed or ignored.  When the value is ignore(1), received
    loopback commands are ignored.  When the value is process(2),
    OAM loopback commands are processed.  The default value is to
    ignore loopback commands (ignore(1)).  
    "
  REFERENCE   "[802.3ah], REFERENCE 57.2.11, 30.3.61.14, 
    30.3.6.1.15"
  ::= { cdot3OamLoopbackEntry 2 }


-- ***************************************************************
--
-- Ethernet OAM Statistics group
--


cdot3OamStatsTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF Cdot3OamStatsEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "This table contains statistics for the OAM function on a
    particular Ethernet like interface. There is an entry in the
    table for every entry in the cdot3OamTable. 
    
    The counters in this table are defined as 32-bit entries to
    match the counter size as defined in [802.3ah].  Given the OAM
    protocol is a slow protocol, the counters increment at a slow
    rate. 
    "
  ::= { cdot3OamObjects 4 }

cdot3OamStatsEntry OBJECT-TYPE
  SYNTAX      Cdot3OamStatsEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "An entry in the table, containing statistics information on
    the Ethernet OAM function for a single Ethernet like
    interface.  Entries are automatically created for every entry
    in the cdot3OamTable.  Counters are maintained across
    transitions in cdot3OamOperStatus.  
    "
  INDEX       { ifIndex }
  ::= { cdot3OamStatsTable 1 }

Cdot3OamStatsEntry ::=
  SEQUENCE {
            cdot3OamInformationTx                Counter32,
            cdot3OamInformationRx                Counter32,
            cdot3OamUniqueEventNotificationTx    Counter32,
            cdot3OamUniqueEventNotificationRx    Counter32,
            cdot3OamDuplicateEventNotificationTx Counter32,
            cdot3OamDuplicateEventNotificationRx Counter32,
            cdot3OamLoopbackControlTx            Counter32,
            cdot3OamLoopbackControlRx            Counter32,
            cdot3OamVariableRequestTx            Counter32,
            cdot3OamVariableRequestRx            Counter32,
            cdot3OamVariableResponseTx           Counter32,
            cdot3OamVariableResponseRx           Counter32,
            cdot3OamOrgSpecificTx                Counter32,
            cdot3OamOrgSpecificRx                Counter32,
            cdot3OamUnsupportedCodesTx           Counter32,
            cdot3OamUnsupportedCodesRx           Counter32,
            cdot3OamFramesLostDueToOam           Counter32
           }

    
cdot3OamInformationTx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Information OAMPDUs transmitted on
    this interface.

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  "
  REFERENCE   "[802.3ah], 30.3.6.1.20."  
  ::= { cdot3OamStatsEntry 1 }
    
cdot3OamInformationRx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Information OAMPDUs received on this
    interface.

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.21."  
  ::= { cdot3OamStatsEntry 2 }
    
cdot3OamUniqueEventNotificationTx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of unique Event OAMPDUs transmitted on
    this interface.  Event notifications may be sent in duplicate
    to increase the probability of successfully being received,
    given the possibility that a frame may be lost in transit.
    Duplicate Event Notification transmissions are counted by
    cdot3OamDuplicateEventNotificationTx.  

    A unique Event Notification OAMPDU is indicated as an Event
    Notification OAMPDU with a Sequence Number field that is
    distinct from the previously transmitted Event Notification
    OAMPDU Sequence Number.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.22."  
  ::= { cdot3OamStatsEntry 3 }
    
cdot3OamUniqueEventNotificationRx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of unique Event OAMPDUs received on
    this interface.  Event notification OAMPDUs may be sent in
    duplicate to increase the probability of successfully being
    received, given the possibility that a frame may be lost in
    transit.  Duplicate Event Notification receptions are counted
    by cdot3OamDuplicateEventNotificationRx.  

    A unique Event Notification OAMPDU is indicated as an Event
    Notification OAMPDU with a Sequence Number field that is
    distinct from the previously received Event Notification
    OAMPDU Sequence Number.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.24."  
  ::= { cdot3OamStatsEntry 4 }
    
cdot3OamDuplicateEventNotificationTx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of duplicate Event OAMPDUs transmitted
    on this interface.  Event notification OAMPDUs may be sent in
    duplicate to increase the probability of successfully being
    received, given the possibility that a frame may be lost in
    transit.  

    A duplicate Event Notification OAMPDU is indicated as an Event
    Notification OAMPDU with a Sequence Number field that is
    identical to the previously transmitted Event Notification
    OAMPDU Sequence Number.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.23."  
  ::= { cdot3OamStatsEntry 5 }
    
cdot3OamDuplicateEventNotificationRx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of duplicate Event OAMPDUs received on
    this interface.  Event notification OAMPDUs may be sent in
    duplicate to increase the probability of successfully being
    received, given the possibility that a frame may be lost in
    transit.  

    A duplicate Event Notification OAMPDU is indicated as an Event
    Notification OAMPDU with a Sequence Number field that is
    identical to the previously received Event Notification OAMPDU
    Sequence Number.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.25."  
  ::= { cdot3OamStatsEntry 6 }

cdot3OamLoopbackControlTx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Loopback Control OAMPDUs transmitted
    on this interface.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.26."  
  ::= { cdot3OamStatsEntry 7 }
    
cdot3OamLoopbackControlRx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Loopback Control OAMPDUs received
    on this interface.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.27."  
  ::= { cdot3OamStatsEntry 8 }
    
cdot3OamVariableRequestTx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Variable Request OAMPDUs transmitted
    on this interface.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.28."  
  ::= { cdot3OamStatsEntry 9 }
    
cdot3OamVariableRequestRx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Variable Request OAMPDUs received on
    this interface.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.29."  
  ::= { cdot3OamStatsEntry 10 }
    
cdot3OamVariableResponseTx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Variable Response OAMPDUs
    transmitted on this interface.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.30."  
  ::= { cdot3OamStatsEntry 11 }
  
cdot3OamVariableResponseRx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Variable Response OAMPDUs received
    on this interface.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.31."  
  ::= { cdot3OamStatsEntry 12 }
    
 cdot3OamOrgSpecificTx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Organization Specific OAMPDUs
    transmitted on this interface.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.32."  
  ::= { cdot3OamStatsEntry 13 }
    
cdot3OamOrgSpecificRx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of Organization Specific OAMPDUs
    received on this interface.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.33."  
  ::= { cdot3OamStatsEntry 14 }
  
cdot3OamUnsupportedCodesTx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of OAMPDUs transmitted on this
    interface with an unsupported op-code.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.18."  
  ::= { cdot3OamStatsEntry 15 }

cdot3OamUnsupportedCodesRx OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of OAMPDUs received on this interface
    with an unsupported op-code.  

    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.19."  
  ::= { cdot3OamStatsEntry 16 }

cdot3OamFramesLostDueToOam OBJECT-TYPE
  SYNTAX      Counter32
  UNITS       "frames"
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "A count of the number of frames that were dropped by the OAM
    multiplexer.  Since the OAM multiplexer has multiple inputs
    and a single output, there may be cases where frames are
    dropped due to transmit resource contention.  This counter is
    incremented whenever a frame is dropped by the OAM layer.
    Note that any Ethernet frame, not just OAMPDUs, may be dropped
    by the OAM layer.  This can occur when an OAMPDU takes
    precedence over a 'normal' frame resulting in the 'normal'
    frame being dropped.  

    When this counter is incremented, no other counters in this
    MIB are incremented.  
                  
    Discontinuities of this counter can occur at re-initialization
    of the management system, and at other times as indicated by
    the value of the ifCounterDiscontinuityTime.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.46."  
  ::= { cdot3OamStatsEntry 17 }


-- ***************************************************************
--
-- Ethernet OAM Event Configuration group
--


cdot3OamEventConfigTable OBJECT-TYPE
  SYNTAX     SEQUENCE OF Cdot3OamEventConfigEntry
  MAX-ACCESS not-accessible
  STATUS     current
  DESCRIPTION 
    "Ethernet OAM includes the ability to generate and receive
    Event Notification OAMPDUs to indicate various link problems.
    This table contains the mechanisms to enable Event
    Notifications and configure the thresholds to generate the
    standard Ethernet OAM events.  There is one entry in the table
    for every entry in cdot3OamTable that supports OAM events
    (where cdot3OamFunctionsSupported includes the eventSupport
    bit set). The values in the table are maintained across
    changes to cdot3OamOperStatus.  

    The standard threshold crossing events are:
      - Errored Symbol Period Event.  Generated when the number of
        symbol errors exceeds a threshold within a given window 
        defined by a number of symbols (for example, 1,000 symbols
        out of 1,000,000 had errors).  
      - Errored Frame Period Event.  Generated when the number of 
        frame errors exceeds a threshold within a given window 
        defined by a number of frames (for example, 10 frames out
        of 1000 had errors).  
      - Errored Frame Event.  Generated when the number of frame 
        errors exceeds a threshold within a given window defined 
        by a period of time (for example, 10 frames in 1 second 
        had errors).
      - Errored Frame Seconds Summary Event.  Generated when the 
        number of errored frame seconds exceeds a threshold within
        a given time period (for example, 10 errored frame seconds
        within the last 100 seconds).  An errored frame second is 
        defined as a 1 second interval which had >0 frame errors.  
    There are other events (dying gasp, critical events) that are
    not threshold crossing events but which can be
    enabled/disabled via this table.  
    "   
  ::= { cdot3OamObjects 5 }

cdot3OamEventConfigEntry OBJECT-TYPE
  SYNTAX      Cdot3OamEventConfigEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "Entries are automatically created and deleted from this
    table, and exist whenever the OAM entity supports Ethernet OAM
    events (as indicated by the eventSupport bit in
    cdot3OamFunctionsSuppported).  Values in the table are
    maintained across changes to the value of cdot3OamOperStatus.

    Event configuration controls when the local management entity
    sends Event Notification OAMPDUs to its OAM peer, and when
    certain event flags are set or cleared in OAMPDUs. 
    "
  INDEX       { ifIndex }
  ::= { cdot3OamEventConfigTable 1 }

Cdot3OamEventConfigEntry ::=
  SEQUENCE {
            cdot3OamErrSymPeriodWindowHi        Unsigned32,
            cdot3OamErrSymPeriodWindowLo        Unsigned32,
            cdot3OamErrSymPeriodThresholdHi     Unsigned32,
            cdot3OamErrSymPeriodThresholdLo     Unsigned32,
            cdot3OamErrSymPeriodEvNotifEnable   TruthValue,
            cdot3OamErrFramePeriodWindow        Unsigned32,
            cdot3OamErrFramePeriodThreshold     Unsigned32,
            cdot3OamErrFramePeriodEvNotifEnable TruthValue,
            cdot3OamErrFrameWindow              Unsigned32,
            cdot3OamErrFrameThreshold           Unsigned32,
            cdot3OamErrFrameEvNotifEnable       TruthValue,
            cdot3OamErrFrameSecsSummaryWindow   Integer32,
            cdot3OamErrFrameSecsSummaryThreshold Integer32,
            cdot3OamErrFrameSecsEvNotifEnable   TruthValue,
            cdot3OamDyingGaspEnable             TruthValue,
            cdot3OamCriticalEventEnable         TruthValue
          }

cdot3OamErrSymPeriodWindowHi OBJECT-TYPE
  SYNTAX      Unsigned32
  UNITS       "2^32 symbols"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The two objects cdot3OamErrSymPeriodWindowHi and
    cdot3OamErrSymPeriodLo together form an unsigned 64-bit
    integer representing the number of symbols over which this
    threshold event is defined.  This is defined as

  cdot3OamErrSymPeriodWindow = ((2^32)*cdot3OamErrSymPeriodWindowHi)
                                    + cdot3OamErrSymPeriodWindowLo
    
    If cdot3OamErrSymPeriodThreshold symbol errors occur within a
    window of cdot3OamErrSymPeriodWindow symbols, an Event
    Notification OAMPDU should be generated with an Errored Symbol
    Period Event TLV indicating the threshold has been crossed in
    this window.  
    
    The default value for cdot3OamErrSymPeriodWindow is the number
    of symbols in one second for the underlying physical layer.
    "
  REFERENCE   "[802.3ah], 30.3.6.1.34"  
  ::= { cdot3OamEventConfigEntry 1 }
  
cdot3OamErrSymPeriodWindowLo OBJECT-TYPE
  SYNTAX      Unsigned32
  UNITS       "symbols"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The two objects cdot3OamErrSymPeriodWindowHi and
    cdot3OamErrSymPeriodWindowLo together form an unsigned 64-bit
    integer representing the number of symbols over which this
    threshold event is defined.  This is defined as

  cdot3OamErrSymPeriodWindow = ((2^32)*cdot3OamErrSymPeriodWindowHi)
                                    + cdot3OamErrSymPeriodWindowLo
    
    If cdot3OamErrSymPeriodThreshold symbol errors occur within a
    window of cdot3OamErrSymPeriodWindow symbols, an Event
    Notification OAMPDU should be generated with an Errored Symbol
    Period Event TLV indicating the threshold has been crossed in
    this window.  

    The default value for cdot3OamErrSymPeriodWindow is the number
    of symbols in one second for the underlying physical layer. 
    "
  REFERENCE   "[802.3ah], 30.3.6.1.34"  
  ::= { cdot3OamEventConfigEntry 2 }
  
cdot3OamErrSymPeriodThresholdHi OBJECT-TYPE
  SYNTAX      Unsigned32
  UNITS       "2^32 symbols"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The two objects cdot3OamErrSymPeriodThresholdHi and
    cdot3OamErrSymPeriodThresholdLo together form an unsigned
    64-bit integer representing the number of symbol errors that
    must occur within a given window to cause this event.  

    This is defined as

      cdot3OamErrSymPeriodThreshold =
                        ((2^32) * cdot3OamErrSymPeriodThresholdHi)
                                + cdot3OamErrSymPeriodThresholdLo
                       
    If cdot3OamErrSymPeriodThreshold symbol errors occur within a
    window of cdot3OamErrSymPeriodWindow symbols, an Event
    Notification OAMPDU should be generated with an Errored Symbol
    Period Event TLV indicating the threshold has been crossed in
    this window.  

    The default value for cdot3OamErrSymPeriodThreshold is one
    symbol errors.  If the threshold value is zero, then an Event
    Notification OAMPDU is sent periodically (at the end of every
    window).  This can be used as an asynchronous notification to
    the peer OAM entity of the statistics related to this
    threshold crossing alarm.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.34"  
  ::= { cdot3OamEventConfigEntry 3 }

cdot3OamErrSymPeriodThresholdLo OBJECT-TYPE
  SYNTAX      Unsigned32
  UNITS       "symbols"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The two objects cdot3OamErrSymPeriodThresholdHi and
    cdot3OamErrSymPeriodThresholdLo together form an unsigned
    64-bit integer representing the number of symbol errors that
    must occur within a given window to cause this event.  

    This is defined as

      cdot3OamErrSymPeriodThreshold =
                        ((2^32) * cdot3OamErrSymPeriodThresholdHi)
                                + cdot3OamErrSymPeriodThresholdLo
                       
    If cdot3OamErrSymPeriodThreshold symbol errors occur within a
    window of cdot3OamErrSymPeriodWindow symbols, an Event
    Notification OAMPDU should be generated with an Errored Symbol
    Period Event TLV indicating the threshold has been crossed in
    this window.  

    The default value for cdot3OamErrSymPeriodThreshold is one
    symbol error. If the threshold value is zero, then an Event
    Notification OAMPDU is sent periodically (at the end of every
    window).  This can be used as an asynchronous notification to
    the peer OAM entity of the statistics related to this
    threshold crossing alarm. 
    "
  REFERENCE   "[802.3ah], 30.3.6.1.34"  
  ::= { cdot3OamEventConfigEntry 4 }

cdot3OamErrSymPeriodEvNotifEnable OBJECT-TYPE 
  SYNTAX      TruthValue
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "If true, the OAM entity should send an Event Notification
    OAMPDU when an Errored Symbol Period Event occurs. 
    By default, this object should have the value true for
    Ethernet like interfaces that support OAM.  If the OAM layer
    does not support event notifications (as indicated via the
    cdot3OamFunctionsSupported attribute), this value is ignored.
    "
  ::= { cdot3OamEventConfigEntry 5 }
        
cdot3OamErrFramePeriodWindow OBJECT-TYPE
  SYNTAX      Unsigned32
  UNITS       "frames"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The number of frames over which the threshold is defined.
    The default value of the window is the number of minimum size
    Ethernet frames that can be received over the physical layer
    in one second.  
                    
    If cdot3OamErrFramePeriodThreshold frame errors occur within a
    window of cdot3OamErrFramePeriodWindow frames, an Event
    Notification OAMPDU should be generated with an Errored Frame
    Period Event TLV indicating the threshold has been crossed in
    this window.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.38"  
  ::= { cdot3OamEventConfigEntry 6 }
  
cdot3OamErrFramePeriodThreshold OBJECT-TYPE
  SYNTAX      Unsigned32
  UNITS       "frames"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The number of frame errors that must occur for this event to
    be triggered.  The default value is one frame error.  If the
    threshold value is zero, then an Event Notification OAMPDU is
    sent periodically (at the end of every window).  This can be
    used as an asynchronous notification to the peer OAM entity of
    the statistics related to this threshold crossing alarm.
                    
    If cdot3OamErrFramePeriodThreshold frame errors occur within a
    window of cdot3OamErrFramePeriodWindow frames, an Event
    Notification OAMPDU should be generated with an Errored Frame
    Period Event TLV indicating the threshold has been crossed in
    this window.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.38"  
  ::= { cdot3OamEventConfigEntry 7 }
  
cdot3OamErrFramePeriodEvNotifEnable OBJECT-TYPE 
  SYNTAX      TruthValue
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "If true, the OAM entity should send an Event Notification
    OAMPDU when an Errored Frame Period Event occurs. 

    By default, this object should have the value true for
    Ethernet like interfaces that support OAM.  If the OAM layer
    does not support event notifications (as indicated via the
    cdot3OamFunctionsSupported attribute), this value is ignored. 
    "
  ::= { cdot3OamEventConfigEntry 8 }
 
 
cdot3OamErrFrameWindow OBJECT-TYPE
  SYNTAX      Unsigned32
  UNITS       "tenths of a second"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The amount of time (in 100ms increments) over which the
    threshold is defined.  The default value is 10 (1 second).  
                    
    If cdot3OamErrFrameThreshold frame errors occur within a window
    of cdot3OamErrFrameWindow seconds (measured in tenths of
    seconds), an Event Notification OAMPDU should be generated
    with an Errored Frame Event TLV indicating the threshold has
    been crossed in this window.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.36"  
  ::= { cdot3OamEventConfigEntry 9 }
  
  
cdot3OamErrFrameThreshold OBJECT-TYPE
  SYNTAX      Unsigned32
  UNITS       "frames"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The number of frame errors that must occur for this event to
    be triggered.  The default value is one frame error. If the
    threshold value is zero, then an Event Notification OAMPDU is
    sent periodically (at the end of every window).  This can be
    used as an asynchronous notification to the peer OAM entity of
    the statistics related to this threshold crossing alarm. 
                    
    If cdot3OamErrFrameThreshold frame errors occur within a window
    of cdot3OamErrFrameWindow (in tenths of seconds), an Event
    Notification OAMPDU should be generated with an Errored Frame
    Event TLV indicating the threshold has been crossed in this
    window.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.36"  
  ::= { cdot3OamEventConfigEntry 10 }
  
cdot3OamErrFrameEvNotifEnable OBJECT-TYPE 
  SYNTAX      TruthValue
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "If true, the OAM entity should send an Event Notification
    OAMPDU when an Errored Frame Event occurs. 
                    
    By default, this object should have the value true for
    Ethernet like interfaces that support OAM.  If the OAM layer
    does not support event notifications (as indicated via the
    cdot3OamFunctionsSupported attribute), this value is ignored. 
    "
  ::= { cdot3OamEventConfigEntry 11 }
        
cdot3OamErrFrameSecsSummaryWindow OBJECT-TYPE
  SYNTAX      Integer32 (100..9000)
  UNITS       "tenths of a second"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The amount of time (in 100ms intervals) over which the
    threshold is defined.  The default value is 100 (10 seconds).  
                    
    If cdot3OamErrFrameSecsSummaryThreshold frame errors occur
    within a window of cdot3OamErrFrameSecsSummaryWindow (in tenths
    of seconds), an Event Notification OAMPDU should be generated
    with an Errored Frame Seconds Summary Event TLV indicating the
    threshold has been crossed in this window.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.40"  
  ::= { cdot3OamEventConfigEntry 12 }
  
cdot3OamErrFrameSecsSummaryThreshold OBJECT-TYPE
  SYNTAX      Integer32 (1..900)
  UNITS       "errored frame seconds"
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "The number of errored frame seconds that must occur for this
    event to be triggered.  The default value is one errored frame
    second. If the threshold value is zero, then an Event
    Notification OAMPDU is sent periodically (at the end of every
    window).  This can be used as an asynchronous notification to
    the peer OAM entity of the statistics related to this
    threshold crossing alarm. 
                    
    If cdot3OamErrFrameSecsSummaryThreshold frame errors occur
    within a window of cdot3OamErrFrameSecsSummaryWindow (in tenths
    of seconds), an Event Notification OAMPDU should be generated
    with an Errored Frame Seconds Summary Event TLV indicating the
    threshold has been crossed in this window.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.40"  
  ::= { cdot3OamEventConfigEntry 13 }
  
cdot3OamErrFrameSecsEvNotifEnable OBJECT-TYPE 
  SYNTAX      TruthValue
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "If true, the local OAM entity should send an Event
    Notification OAMPDU when an Errored Frame Seconds Event
    occurs. 
                    
    By default, this object should have the value true for
    Ethernet like interfaces that support OAM.  If the OAM layer
    does not support event notifications (as indicated via the
    cdot3OamFunctionsSupported attribute), this value is ignored.
    "
  ::= { cdot3OamEventConfigEntry 14 }
        
cdot3OamDyingGaspEnable OBJECT-TYPE 
  SYNTAX      TruthValue
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "If true, the local OAM entity should attempt to indicate a
    dying gasp via the OAMPDU flags field to its peer OAM entity
    when a dying gasp event occurs.  The exact definition of a
    dying gasp event is implementation dependent.  If the system
    does not support dying gasp capability, setting this object
    has no effect, and reading the object should always result in
    'false'.  
                    
    By default, this object should have the value true for
    Ethernet like interfaces that support OAM.  If the OAM layer
    does not support event notifications (as indicated via the
    cdot3OamFunctionsSupported attribute), this value is ignored.
    "
  ::= { cdot3OamEventConfigEntry 15 }
        
cdot3OamCriticalEventEnable OBJECT-TYPE 
  SYNTAX      TruthValue
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION 
    "If true, the local OAM entity should attempt to indicate a
    critical event via the OAMPDU flags to its peer OAM entity
    when a critical event occurs.   The exact definition of a
    critical event is implementation dependent.  If the system
    does not support critical event capability, setting this
    object has no effect, and reading the object should always
    result in 'false'.  
                    
    By default, this object should have the value true for
    Ethernet like interfaces that support OAM.  If the OAM layer
    does not support event notifications (as indicated via the
    cdot3OamFunctionsSupported attribute), this value is ignored.
    "
  ::= { cdot3OamEventConfigEntry 16 }
        

-- **************************************************************
-- 
-- Ethernet OAM Event Log group 
-- 


cdot3OamEventLogTable OBJECT-TYPE 
  SYNTAX       SEQUENCE OF Cdot3OamEventLogEntry 
  MAX-ACCESS   not-accessible 
  STATUS       current 
  DESCRIPTION 
    "This table records a history of the events that have occurred
    at the Ethernet OAM level.  These events can include locally
    detected events, which may result in locally generated
    OAMPDUs, and remotely detected events, which are detected by
    the OAM peer entity and signaled to the local entity via
    Ethernet OAM.  Ethernet OAM events can be signaled by Event
    Notification OAMPDUs or by the flags field in any OAMPDU.  

    This table contains both threshold crossing events and
    non-threshold crossing events.  The parameters for the
    threshold window, threshold value, and actual value
    (cdot3OamEventLogWindowXX, cdot3OamEventLogThresholdXX,
    cdot3OamEventLogValue) are only applicable to threshold
    crossing events, and are returned as all F's (2^32 - 1) for
    non-threshold crossing events.  
    Entries in the table are automatically created when such
    events are detected.  The size of the table is implementation
    dependent.  When the table reaches its maximum size, older
    entries are automatically deleted to make room for newer
    entries. 
    "
    ::= { cdot3OamObjects 6 } 

cdot3OamEventLogEntry OBJECT-TYPE 
  SYNTAX      Cdot3OamEventLogEntry 
  MAX-ACCESS  not-accessible 
  STATUS      current 
  DESCRIPTION 
    "An entry in the cdot3OamEventLogTable.  Entries are
    automatically created whenever Ethernet OAM events occur at
    the local OAM entity, and when Event Notification OAMPDUs are
    received at the local OAM entity (indicating events have
    occurred at the peer OAM entity).  The size of the table is
    implementation dependent, but when the table becomes full,
    older events are automatically deleted to make room for newer
    events.  The table index cdot3OamEventLogIndex increments for
    each new entry, and when the maximum value is reached the
    value restarts at zero.  
    " 
  INDEX       { ifIndex, cdot3OamEventLogIndex }
  ::= { cdot3OamEventLogTable 1 } 

Cdot3OamEventLogEntry ::=
  SEQUENCE {
    cdot3OamEventLogIndex                Unsigned32,
    cdot3OamEventLogTimestamp            TimeStamp,
    cdot3OamEventLogOui                  Cdot3Oui, 
    cdot3OamEventLogType                 Unsigned32,
    cdot3OamEventLogLocation             INTEGER,
    cdot3OamEventLogWindowHi             Unsigned32,
    cdot3OamEventLogWindowLo             Unsigned32,
    cdot3OamEventLogThresholdHi          Unsigned32,
    cdot3OamEventLogThresholdLo          Unsigned32,
    cdot3OamEventLogValue                CounterBasedGauge64,
    cdot3OamEventLogRunningTotal         CounterBasedGauge64,
    cdot3OamEventLogEventTotal           Unsigned32
  }

cdot3OamEventLogIndex       OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  not-accessible
  STATUS      current 
  DESCRIPTION 
    "An arbitrary integer for identifying individual events
    within the event log.  "
  ::= { cdot3OamEventLogEntry 1 }

cdot3OamEventLogTimestamp  OBJECT-TYPE 
  SYNTAX      TimeStamp 
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "The value of sysUpTime at the time of the logged event.  For
    locally generated events, the time of the event can be
    accurately retrieved from sysUpTime.  For remotely generated
    events, the time of the event is indicated by the reception of
    the Event Notification OAMPDU indicating the event occurred on
    the peer.  A system may attempt to adjust the timestamp value
    to more accurately reflect the time of the event at the peer
    OAM entity by using other information, such as that found in
    the timestamp found of the Event Notification TLVs, which
    provides an indication of the relative time between events at
    the peer entity.  "
  ::= { cdot3OamEventLogEntry 2 }

cdot3OamEventLogOui  OBJECT-TYPE 
  SYNTAX      Cdot3Oui
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "The OUI of the entity defining the object type.  All IEEE
    802.3 defined events (as appearing in [802.3ah] except for the
    Organizationally Unique Event TLVs) use the IEEE 802.3 OUI of
    0x0180C2.  Organizations defining their own Event Notification
    TLVs include their OUI in the Event Notification TLV which
    gets reflected here.  "
  ::= { cdot3OamEventLogEntry 3 }


cdot3OamEventLogType      OBJECT-TYPE
  SYNTAX      Unsigned32 
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "The type of event that generated this entry in the event log.

    When the OUI is the IEEE 802.3 OUI of 0x0180C2, the following
    event types are defined:
        erroredSymbolEvent(1), 
        erroredFramePeriodEvent (2), 
        erroredFrameEvent(3),
        erroredFrameSecondsEvent(4), 
        linkFault(256), 
        dyingGaspEvent(257),
        criticalLinkEvent(258)
    The first four are considered threshold crossing events as
    they are generated when a metric exceeds a given value within
    a specified window.  The other three are not threshold
    crossing events.  

    When the OUI is not 71874 (0x0180C2 in hex), then some other
    organization has defined the event space.  If event subtyping
    is known to the implementation, it may be reflected here.
    Otherwise, this value should return all Fs (2^32 - 1).  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.10 and 57.5.3."
  ::= { cdot3OamEventLogEntry 4 }

cdot3OamEventLogLocation OBJECT-TYPE 
  SYNTAX      INTEGER { local(1), remote(2) }
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "Whether this event occurred locally (local(1)), or was 
    received from the OAM peer via Ethernet OAM (remote(2)).
    "
  ::= { cdot3OamEventLogEntry 5 }

cdot3OamEventLogWindowHi      OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "If the event represents a threshold crossing event, the two
    objects cdot3OamEventWindowHi and cdot3OamEventWindowLo form an
    unsigned 64-bit integer yielding the window over which the
    value was measured for the threshold crossing event (for
    example, 5, when 11 occurrences happened in 5 seconds while
    the threshold was 10).   The two objects are combined as:

    cdot3OamEventLogWindow = ((2^32) * cdot3OamEventLogWindowHi)
                                    + cdot3OamEventLogWindowLo

    
    Otherwise, this value is returned as all F's (2^32 - 1) and 
    adds no useful information.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.37 and 57.5.3.2."
  ::= { cdot3OamEventLogEntry 6 }

cdot3OamEventLogWindowLo      OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "If the event represents a threshold crossing event, the two
    objects cdot3OamEventWindowHi and cdot3OamEventWindowLo form an
    unsigned 64-bit integer yielding the window over which the
    value was measured for the threshold crossing event (for
    example, 5, when 11 occurrences happened in 5 seconds while
    the threshold was 10).   The two objects are combined as:

    cdot3OamEventLogWindow = ((2^32) * cdot3OamEventLogWindowHi)
                                    + cdot3OamEventLogWindowLo

    Otherwise, this value is returned as all F's (2^32 - 1) and 
    adds no useful information.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.37 and 57.5.3.2."
  ::= { cdot3OamEventLogEntry 7 }

cdot3OamEventLogThresholdHi      OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "If the event represents a threshold crossing event, the two
    objects cdot3OamEventThresholdHi and cdot3OamEventThresholdLo
    form an unsigned 64-bit integer yielding the value that was
    crossed for the threshold crossing event (for example, 10,
    when 11 occurrences happened in 5 seconds while the threshold
    was 10).  The two objects are combined as:

  cdot3OamEventLogThreshold = ((2^32) * cdot3OamEventLogThresholdHi)
                                     + cdot3OamEventLogThresholdLo

    Otherwise, this value is returned as all F's (2^32 -1) and 
    adds no useful information.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.37 and 57.5.3.2."
  ::= { cdot3OamEventLogEntry 8 }

cdot3OamEventLogThresholdLo      OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "If the event represents a threshold crossing event, the two
    objects cdot3OamEventThresholdHi and cdot3OamEventThresholdLo
    form an unsigned 64-bit integer yielding the value that was
    crossed for the threshold crossing event (for example, 10,
    when 11 occurrences happened in 5 seconds while the threshold
    was 10).  The two objects are combined as:

  cdot3OamEventLogThreshold = ((2^32) * cdot3OamEventLogThresholdHi)
                                     + cdot3OamEventLogThresholdLo

    Otherwise, this value is returned as all F's (2^32 - 1) and
    adds no useful information.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.37 and 57.5.3.2."
  ::= { cdot3OamEventLogEntry 9 }

cdot3OamEventLogValue      OBJECT-TYPE
  SYNTAX      CounterBasedGauge64 
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "If the event represents a threshold crossing event, this
    value indicates the value of the parameter within the given
    window that generated this event (for example, 11, when 11
    occurrences happened in 5 seconds while the threshold was 10).  

    Otherwise, this value is returned as all F's 
    (2^64 - 1) and adds no useful information.  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.37 and 57.5.3.2."
  ::= { cdot3OamEventLogEntry 10 }

cdot3OamEventLogRunningTotal      OBJECT-TYPE
  SYNTAX      CounterBasedGauge64
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "Each Event Notification TLV contains a running total of the
    number of times an event has occurred, as well as the number
    of times an Event Notification for the event has been
    transmitted.  For non-threshold crossing events, the number of
    events (cdot3OamLogRunningTotal) and the number of resultant
    Event Notifications (cdot3OamLogEventTotal) should be
    identical. 
    
    For threshold crossing events, since multiple occurrences may
    be required to cross the threshold, these values are likely
    different.  This value represents the total number of times
    this event has happened since the last reset (for example,
    3253, when 3253 symbol errors have occurred since the last
    reset, which has resulted in 51 symbol error threshold
    crossing events since the last reset).  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.37 and 57.5.3.2."
  ::= { cdot3OamEventLogEntry 11 }

cdot3OamEventLogEventTotal      OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current 
  DESCRIPTION 
    "Each Event Notification TLV contains a running total of the
    number of times an event has occurred, as well as the number
    of times an Event Notification for the event has been
    transmitted.  For non-threshold crossing events, the number of
    events (cdot3OamLogRunningTotal) and the number of resultant
    Event Notifications (cdot3OamLogEventTotal) should be
    identical. 
    
    For threshold crossing events, since multiple occurrences may
    be required to cross the threshold, these values are likely
    different.  This value represents the total number of times
    one or more of these occurrences have resulted in an Event
    Notification (for example, 51 when 3253 symbol errors have
    occurred since the last reset, which has resulted in 51 symbol
    error threshold crossing events since the last reset).  
    "
  REFERENCE   "[802.3ah], 30.3.6.1.37 and 57.5.3.2."
  ::= { cdot3OamEventLogEntry 12 }


-- ***************************************************************
-- 
-- Ethernet OAM Notifications
-- 


cdot3OamThresholdEvent NOTIFICATION-TYPE
  OBJECTS { cdot3OamEventLogTimestamp, 
            cdot3OamEventLogOui, 
            cdot3OamEventLogType,
            cdot3OamEventLogLocation,
            cdot3OamEventLogWindowHi,
            cdot3OamEventLogWindowLo,
            cdot3OamEventLogThresholdHi,
            cdot3OamEventLogThresholdLo,
            cdot3OamEventLogValue,
            cdot3OamEventLogRunningTotal,
            cdot3OamEventLogEventTotal
          }
  STATUS  current

  DESCRIPTION
    "A cdot3OamThresholdEvent notification is sent when a local or
    remote threshold crossing event is detected.  A local
    threshold crossing event is detected by the local entity,
    while a remote threshold crossing event is detected by the
    reception of an Ethernet OAM Event Notification OAMPDU
    indicating a threshold event.  

    This notification should not be sent more than once per
    second.

    The OAM entity can be derived from extracting the ifIndex from
    the variable bindings.  The objects in the notification
    correspond to the values in a row instance of in the
    cdot3OamEventLogTable.  
    
    The management entity should periodically check
    cdot3OamEventLogTable to detect any missed events."
 ::= { cdot3OamNotifications 1 } 


cdot3OamNonThresholdEvent NOTIFICATION-TYPE
  OBJECTS { cdot3OamEventLogTimestamp, 
            cdot3OamEventLogOui, 
            cdot3OamEventLogType,
            cdot3OamEventLogLocation,
            cdot3OamEventLogEventTotal
          }
  STATUS  current
  DESCRIPTION
    "A cdot3OamNonThresholdEvent notification is sent when a local
    or remote non-threshold crossing event is detected.  A local
    event is detected by the local entity, while a remote event is
    detected by the reception of an Ethernet OAM Event
    Notification OAMPDU indicating a non-threshold crossing event.  

    This notification should not be sent more than once per
    second.

    The OAM entity can be derived from extracting the ifIndex from
    the variable bindings.  The objects in the notification
    correspond to the values in a row instance of the
    cdot3OamEventLogTable.  
    
    The management entity should periodically check
    cdot3OamEventLogTable to detect any missed events."
 ::= { cdot3OamNotifications 2 } 


-- ***************************************************************
--
-- Ethernet OAM Compliance group
--


cdot3OamGroups OBJECT IDENTIFIER ::= { cdot3OamConformance 1 }
cdot3OamCompliances OBJECT IDENTIFIER ::= { cdot3OamConformance 2 }

-- Compliance statements

cdot3OamCompliance MODULE-COMPLIANCE 
  STATUS          current
  DESCRIPTION "The compliance statement for managed entities
               supporting OAM on Ethernet like interfaces.  
               "
  MODULE   -- this module
      MANDATORY-GROUPS { cdot3OamControlGroup, 
                         cdot3OamPeerGroup, 
                         cdot3OamStatsBaseGroup 
                       }

  GROUP       cdot3OamLoopbackGroup
  DESCRIPTION 
    "This group is mandatory for all IEEE 802.3 OAM
    implementations that support loopback functionality. "

  GROUP       cdot3OamErrSymbolPeriodEventGroup
  DESCRIPTION 
    "This group is mandatory for all IEEE 802.3 OAM
    implementations that support event functionality. "

  GROUP       cdot3OamErrFramePeriodEventGroup
  DESCRIPTION 
    "This group is mandatory for all IEEE 802.3 OAM
    implementations that support event functionality. "

  GROUP       cdot3OamErrFrameEventGroup
  DESCRIPTION 
    "This group is mandatory for all IEEE 802.3 OAM
    implementations that support event functionality. "

  GROUP       cdot3OamErrFrameSecsSummaryEventGroup
  DESCRIPTION 
    "This group is mandatory for all IEEE 802.3 OAM
    implementations that support event functionality. "

  GROUP        cdot3OamFlagEventGroup
  DESCRIPTION
    "This group is optional for all IEEE 802.3 OAM
    implementations.  The ability to send critical events or dying
    gasp events is not required in any system."

  GROUP       cdot3OamEventLogGroup
  DESCRIPTION 
    "This group is optional for all IEEE 802.3 OAM
    implementations. Entries in this table are dependent on what
    event functionality is supported in the local OAM
    implementation.  At least one type of event must be supported
    for entries to appear in this table. "

  GROUP       cdot3OamNotificationGroup
  DESCRIPTION 
    "This group is optional for all IEEE 802.3 OAM
    implementations.  Since the information in the notifications
    is dependent on the cdot3OamEventLogTable, that table must be
    implemented for notifications.  "

  ::= { cdot3OamCompliances 1}
   
   
cdot3OamControlGroup OBJECT-GROUP
   OBJECTS     {   cdot3OamAdminState,
                   cdot3OamOperStatus,
                   cdot3OamMode,
                   cdot3OamMaxOamPduSize,
                   cdot3OamConfigRevision,
                   cdot3OamFunctionsSupported
               }
   STATUS      current
   DESCRIPTION 
     "A collection of objects providing the abilities,
     configuration, and status of an Ethernet OAM entity.  "
   ::= { cdot3OamGroups 1 }

cdot3OamPeerGroup OBJECT-GROUP
   OBJECTS     {   cdot3OamPeerMacAddress,
                   cdot3OamPeerVendorOui,
                   cdot3OamPeerVendorInfo,
                   cdot3OamPeerMode,
                   cdot3OamPeerFunctionsSupported,
                   cdot3OamPeerMaxOamPduSize,
                   cdot3OamPeerConfigRevision
               }
   STATUS      current
   DESCRIPTION 
     "A collection of objects providing the abilities,
     configuration, and status of a peer Ethernet OAM entity.  "
   ::= { cdot3OamGroups 2 }

cdot3OamStatsBaseGroup OBJECT-GROUP
   OBJECTS     {   cdot3OamInformationTx,
                   cdot3OamInformationRx,
                   cdot3OamUniqueEventNotificationTx,
                   cdot3OamUniqueEventNotificationRx,
                   cdot3OamDuplicateEventNotificationTx,
                   cdot3OamDuplicateEventNotificationRx,
                   cdot3OamLoopbackControlTx,
                   cdot3OamLoopbackControlRx,
                   cdot3OamVariableRequestTx,
                   cdot3OamVariableRequestRx,
                   cdot3OamVariableResponseTx,
                   cdot3OamVariableResponseRx,
                   cdot3OamOrgSpecificTx,
                   cdot3OamOrgSpecificRx,
                   cdot3OamUnsupportedCodesTx,
                   cdot3OamUnsupportedCodesRx,
                   cdot3OamFramesLostDueToOam
               }
   STATUS      current
   DESCRIPTION 
     "A collection of objects providing the statistics for the
     number of various transmit and receive events for OAM on an
     Ethernet like interface.  Note that all of these counters must
     be supported even if the related function (as described in
     cdot3OamFunctionsSupported) is not supported.  "
   ::= { cdot3OamGroups 3 }

cdot3OamLoopbackGroup OBJECT-GROUP
   OBJECTS     {   cdot3OamLoopbackStatus,
                   cdot3OamLoopbackIgnoreRx
               }
   STATUS      current
   DESCRIPTION 
     "A collection of objects for controlling the OAM remote
     loopback function.  "
   ::= { cdot3OamGroups 4 }

cdot3OamErrSymbolPeriodEventGroup OBJECT-GROUP
   OBJECTS     {   cdot3OamErrSymPeriodWindowHi,
                   cdot3OamErrSymPeriodWindowLo,
                   cdot3OamErrSymPeriodThresholdHi,
                   cdot3OamErrSymPeriodThresholdLo,
                   cdot3OamErrSymPeriodEvNotifEnable
               }
   STATUS      current
   DESCRIPTION 
     "A collection of objects for configuring the thresholds for an
     Errored Symbol Period Event.  

     Each [802.3ah] defined Event Notification TLV has its own
     conformance group because each event can be implemented
     independently of any other.  "
   ::= { cdot3OamGroups 5 }

cdot3OamErrFramePeriodEventGroup OBJECT-GROUP
   OBJECTS     {   cdot3OamErrFramePeriodWindow,
                   cdot3OamErrFramePeriodThreshold,
                   cdot3OamErrFramePeriodEvNotifEnable
               }
   STATUS      current
   DESCRIPTION 
     "A collection of objects for configuring the thresholds for an
     Errored Frame Period Event.  

     Each [802.3ah] defined Event Notification TLV has its own
     conformance group because each event can be implemented
     independently of any other.  "
   ::= { cdot3OamGroups 6 }

cdot3OamErrFrameEventGroup OBJECT-GROUP
   OBJECTS     {   cdot3OamErrFrameWindow,
                   cdot3OamErrFrameThreshold,
                   cdot3OamErrFrameEvNotifEnable
               }
   STATUS      current
   DESCRIPTION 
     "A collection of objects for configuring the thresholds for an
     Errored Frame Event.  

     Each [802.3ah] defined Event Notification TLV has its own
     conformance group because each event can be implemented
     independently of any other.  "
   ::= { cdot3OamGroups 7 }

cdot3OamErrFrameSecsSummaryEventGroup OBJECT-GROUP
   OBJECTS     {   cdot3OamErrFrameSecsSummaryWindow,
                   cdot3OamErrFrameSecsSummaryThreshold,
                   cdot3OamErrFrameSecsEvNotifEnable
               }
   STATUS      current
   DESCRIPTION 
     "A collection of objects for configuring the thresholds for an
     Errored Frame Seconds Summary Event.  

     Each [802.3ah] defined Event Notification TLV has its own
     conformance group because each event can be implemented
     independently of any other.  "
   ::= { cdot3OamGroups 8 }

cdot3OamFlagEventGroup OBJECT-GROUP
   OBJECTS     {   cdot3OamDyingGaspEnable,
                   cdot3OamCriticalEventEnable
               }
   STATUS      current
   DESCRIPTION 
     "A collection of objects for configuring the sending OAMPDUs
     with the critical event flag or dying gasp flag enabled.  "
   ::= { cdot3OamGroups 9 }

cdot3OamEventLogGroup OBJECT-GROUP
  OBJECTS {  cdot3OamEventLogTimestamp, 
             cdot3OamEventLogOui, 
             cdot3OamEventLogType,
             cdot3OamEventLogLocation,
             cdot3OamEventLogWindowHi,
             cdot3OamEventLogWindowLo,
             cdot3OamEventLogThresholdHi,
             cdot3OamEventLogThresholdLo,
             cdot3OamEventLogValue,
             cdot3OamEventLogRunningTotal,
             cdot3OamEventLogEventTotal
           }
  STATUS      current
  DESCRIPTION 
     "A collection of objects for configuring the thresholds for an
     Errored Frame Seconds Summary Event and maintaining the event
     information.  "
   ::= { cdot3OamGroups 10 }

cdot3OamNotificationGroup NOTIFICATION-GROUP
  NOTIFICATIONS {   
              cdot3OamThresholdEvent,
              cdot3OamNonThresholdEvent
                }
  STATUS      current
  DESCRIPTION 
    "A collection of notifications used by Ethernet OAM to signal
    to a management entity that local or remote events have
    occurred on a specified Ethernet link. "
  ::= { cdot3OamGroups 11 }
   
   
END